Uchat 1.0/UPS/UPS.DOC

57.7 KB 7466cb2b5abe47a7…
                            User Profile System
                               Version 1.00

                        For TBBS 2.2 and TDBS 1.2

      Program Concept and Design by Michael McInnis and Scott Sturgis
                      Programming by Michael McInnis
                      Documentation by Scott Sturgis

The User Profile System (from now on abbreviated as UPS) is easy to
install.  If you follow our instructions and examples below you should not
have any trouble operating this program.  We suggest you first install UPS
so it can be accessed by the SYSOP only. After you are certain that there
are no installation or configuration problems, you can then make the
program accessible to all callers.

──────────────────────────────────────────────────────────────────────────────
Installation - Sysop Module
──────────────────────────────────────────────────────────────────────────────

1. Create a new directory to hold the program files for UPS.

   (Example: d:\UPS\).

2. Copy all files from the distribution diskette or if you received the
   program electronically, unzip all files into the new directory.

3. Add a new menu item (for SYSOP access only) in your SDL file to allow
   Sysop access to the UPS Questionnaire Editor and Configuration module
   (See the section at the end of this document that lists all of the SDL
   Opt Data line options you have at your disposal). The entry should look
   similar to this:


       Entry:
       [1] User Profile System (SYSOP ACCESS)
       Priv=255
       KEY=1 TYPE=200 Opt Data=d:\UPS\UPS /q -m
                                           
                                   │  │      │
       Insert your own Path ───────┘  │      │
   Name of the config TPG  ───────────┘      │
 Flag for the config module (REQUIRED)───────┘


   NOTE: Pay special attention to the Opt Data line. It is
   important that you enter all symbols and characters as they are
   shown. Also remember that spaces are important. ENTER THE OPT DATA
   LINE EXACTLY AS IT IS SHOWN. Failure to do so may result in
   improper operation of UPS. The opt data line is not case sensitive
   for either the flag or the name of the questionnaire.

4. Compile the SDL file and start TBBS. Then select the item from the menu
   to load the User Profile System Sysop Module.

──────────────────────────────────────────────────────────────────────────────
Sysop Module - Introduction
──────────────────────────────────────────────────────────────────────────────

The sysop module is easy to navigate once you have a basic understanding of
how the module is constructed. The module is divided into what we call
"levels". You will notice that the menu bar command keys on the
Questionnaire List screen are the same at every level. The menu bar
commands will only apply to the level you are on. For example: In the
Questionnaire List ADD means add a new questionnaire. On the Add/Edit
Questions level ADD means add another question. Here is a diagram to show
you how the levels are constructed:


QUESTIONNAIRE LIST
     ▌
     ▌
EDIT QUESTIONNAIRE────────ADD/EDIT QUESTIONS
                                ▌
                                ▌
                          QUESTION 1────────ADD/EDIT ANSWERS


For each of the above levels the menu bar commands will allow you to
perform operations on that level. At any time if you wish to quit what you
are doing and exit a function press the escape key. In addition, to
move back a level or zoom out you can also use the escape key or press
"Q" to QUIT.

As you navigate through the various levels you will notice that in the top
right corner there is a level guide. This guide will tell you which level
you are on. In time you will know which command to apply where based on
the level.

The commands that are available at each level are:

A=Add  E=Edit  D=Delete  I=Insert  N=Next  P=Previous  Z=Zoom  Q=Quit

──────────────────────────────────────────────────────────────────────────────
Sysop Module - Questionnaires
──────────────────────────────────────────────────────────────────────────────

When you first enter the Sysop Module for User Profile System you will see a
screen similar to the one below:

 USER PROFILE SYSTEM(tm) v1.0                        Questionnaire List
║ Code        Questionnaire Title                                      ║
║──────────────────────────────────────────────────────────────────────║
║ test01      questionnaire 1                                          ║
║ test02      questionnaire 2                                          ║
║                                                                      ║
║                                                                      ║
║                                                                      ║
║                                                                      ║
║                                                                      ║
║                                                                      ║
║                                                                      ║
║                                                                      ║
║                                                                      ║
║                                                                      ║
║                                                                      ║
║                                                                      ║
 A=Add │ E=Edit │ D=Del │ I=Ins │ N=Next │ P=Prev │ Z=Zoom │ Q=Quit


Here is a list of what the menu keys do on the Questionnaire List Level:

         A=Add a new questionnaire
         E=Edit an existing questionnaire from the list
         D=Delete an existing questionnaire from the list
         I=Insert a Questionnaire
         N=Next page of questionnaires
         P=Previous page of questionnaires
         Z=Zoom - moves to the question level
         Q=Quit to previous level (Escape also does the same thing)

──────────────────────────────────────────────────────────────────────────────
Sysop Module - Creating A Questionnaire
──────────────────────────────────────────────────────────────────────────────

The best way to learn how to use the Questionnaire Module is to create a
questionnaire. In this example we are going to create a general user
questionnaire to ask the caller his sex, height, hair and eye color and
if he understood the rules of the bbs. In addition we will also ask him
to enter any free form comments he would like to add.

1. First select "A" to Add A Questionnaire

   UPS asks you to create a code that will be used to identify the
   questionnaire. It can be numbers, letters or a combination of both. The
   code name can be up to 10 characters long. In our example questionnaire
   type "general" (without quotes) as the name of the questionnaire. As
   you type in the questionnaire name UPS forces it into upper case.

2. Next you are asked to enter a questionnaire title.

   This should be something descriptive so that months later you will be
   able to quickly determine the purpose of the questionnaire. For our
   example type "General User Questionnaire" (without quotes).

When completed UPS will display a message at the bottom of the screen
indicating that the questionnaire has been added.

──────────────────────────────────────────────────────────────────────────────
Sysop Module - Creating A Question
──────────────────────────────────────────────────────────────────────────────

Here is a list of what the menu keys do on the Question Level:

         A=Add a new question
         E=Edit an existing question
         D=Delete an existing question from the list
         I=Insert a Question
         N=Next question
         P=Previous question
         Z=Zoom - moves to the answer level of the current question
         Q=Quit to previous level (Escape also does the same thing)

In order to create a question you must first use the ZOOM function to
"zoom in" on a questionnaire. If you look at the navigational header you
will notice that you are still in the "Edit Questionnaire" Level.

1. Select Z for ZOOM to go to the ADD/EDIT Questions level of the General
   Questionnaire.

   Once selecting ZOOM the navigational header changes to ADD/EDIT
   QUESTIONS indicating that you are now in the Add/Edit Questions Level.
   Your Screen will look similar to the one below:

  USER PROFILE SYSTEM(tm) v1.0                          Add\Edit Questions
║ Questionnaire Code   General                                            ║
║ Questionnaire Title  General User Questionnaire                         ║
╟─────────────────────────────────────────────────────────────────────────╢
║ Question 1                                                              ║
║  <M>ulti <T>rue/False <E>ssay <I>nfo:                                   ║
║  Maximum # Of User Answers Allowed:      1                              ║
║  Include Question In Default Search:     N                              ║
║  Answer MUST Match In Default Search:    N                              ║
║ Question Text                                                           ║
║                                                                         ║
║                                                                         ║
║                                                                         ║
║                                                                         ║
  A=Add │ E=Edit │ D=Del │ I=Ins │ N=Next │ P=Prev │ Z=Zoom │ Q=Quit

The top portion of the screen (under the program title) will always tell
you which questionnaire you are working with.

Under the questionnaire name there are several items listed. As you add a
question the Question number will automatically increment by one.

You have a choice of four types of "questions":

1. <M>ulti - Multiple Choice Questions - You can create a multiple choice
    question with up to twenty-six answers. You can define the total number
    of possible answers that a caller can pick in any given question.

2. <T>rue/False - This is a standard true/false question with only two
    possible choices for an answer. You MUST have tow answers for this
    question - True and False.

3. <E>ssay - The essay allows your caller to enter up to 26 lines in essay
    form for other callers to read. NOTE: Essay questions are NOT
    included in match searches.

4. <I>nfo - This is an Information Only "Question". Essentially this is
    designed for those times when you want to convey a message to the
    caller. There are no answers for this data type.  Some examples will
    be shown later.

1. First create an Information Only Question by selecting I.

2. UPS places you in the Edit mode where you will now enter the text for
   this informational question. In this example enter the following:
   (without quotes)

   "This is a general questionnaire. We need to know a bit more about you.
    Please answer the following questions as completely as possible. Thank
    You."

As you might have noticed there is no word wrapping function in the
editor. You will have to plan your spacing accordingly so that the
questions display properly. Entering a blank line will end the edit mode.
UPS will then ask you to verify if your entry is correct.

   NOTE: If you need to edit the question again type E on this level
         to re-enter edit mode.

3. Select A to ADD another question.

4. Select M for MULTIPLE CHOICE. When selecting multiple choice you will
   advance to the next item: "Maximum # of User Answers Allowed". The
   maximum number of user answers allowed is where you define how many
   answers the caller will be able to select for this question.

   In our example enter "1" and press enter.

5. The next question: "Include Question in Default Search" is used for
   what is known as a "Percentage Match". Because of the complexity of the
   Percentage Match we will cover it last. For now leave this option set
   to "N".

6. The next question: "Answer must match in default search" is also used
   in the Percentage Match. Since you answered NO to the "Include Question
   in Default Search" the User Profile System program automatically skips this
   question.

7. For the Question Text enter the following: (without quotes)

   " What is your sex?"

──────────────────────────────────────────────────────────────────────────────
Sysop Module - Adding An Answer Option
──────────────────────────────────────────────────────────────────────────────

8. Now you have to add answer options to this question. First select "Z"
   to ZOOM to the Add/Edit Answer level. Your screen should look similar
   to the example below:

  USER PROFILE SYSTEM(tm) v1.0                          Add\Edit Questions
║ Questionnaire Code   General                                            ║
║ Questionnaire Title  General User Questionnaire                         ║
╟─────────────────────────────────────────────────────────────────────────╢
║ Question 1                                                              ║
║  <M>ulti <T>rue/False <E>ssay <I>nfo:    M                              ║
║  Maximum # Of User Answers Allowed:      1                              ║
║  Include Question In Default Search:     N                              ║
║  Answer MUST Match In Default Search:    N                              ║
║ Question Text                                                           ║
║ What is your sex?                                                       ║
║                                                                         ║
║─────────────────────────────────────────────────────────────────────────║
║Answer A                                                                 ║
║                                                                         ║
  A=Add │ E=Edit │ D=Del │ I=Ins │ N=Next │ P=Prev │ Z=Zoom │ Q=Quit


Here is a list of what the menu keys do on the ANSWER Level:

         A=Add a new answer
         E=Edit existing answer
         D=Delete existing answer
         I=Insert an answer
         N=Next answer
         P=Previous answer
         Z=Zoom - adds another answer
         Q=Quit to previous level (Escape also does the same thing)

9.  Type "Male" (without quotes) for the Answer A text and press enter.

10. Select "A" to ADD the next answer to this question.

11. Type "Female" (without quotes) and press enter.

12. You have completed entry for this question. Press ESCAPE to exit the
    ADD/EDIT ANSWERS level and return to the ADD/EDIT QUESTIONS level.

13. Next Create a Multiple Choice question as described in the above
    steps. There will only be ONE answer allowed for this question. Leave
    the "Include Question in Default Search" and the "Answer MUST Match in
    Default Search" set to "N".  For the question text enter: "How tall are
    you?" (without quotes).

14. For the multiple choice answers type the following:

        Answer A:  Under 5'
        Answer B:  5'- 5'6"
        Answer C:  5'7" - 5'9"
        Answer D:  5'10" - 6'
        Answer E:  6'1" - 6'4"
        Answer F:  Over 6'4"

15. Next Create another Multiple Choice question as described in the
    above steps. This time there will be THREE possible answers allowed
    for this question. Leave the "Include Question In Default Search" and
    the "Answer MUST match in default search" set to "N. For the
    question text enter "Tell us about your Hair: (without quotes).

16. For the multiple choice answers type the following:

        Answer A:  Black
        Answer B:  Brown
        Answer C:  Red
        Answer D:  Blond
        Answer E:  Grey
        Answer F:  Short
        Answer G:  Long
        Answer H:  Straight
        Answer I:  Curly

17. Now create one final Multiple Choice question as described in the
    above steps. There will be ONE possible answer allowed for this
    question.  Leave the "Include Question In Default Search" and "Answer
    MUST match in Default Search" set to "N". For the question text enter
    "What Color are your eyes? (without quotes).

18. For the multiple choice answers you will enter the following:

        Answer A:  Hazel
        Answer B:  Blue
        Answer C:  Green
        Answer D:  Brown
        Answer E:  Black
        Answer F:  Violet

19. We will now add a true/false question. ADD a question and select T to
    tell UPS that you are creating a true/false question. For the text
    enter:  "Do you understand the rules of this system?" (without quotes)

20. For Answer A type YES and answer B type NO.

21. We have one question left. Create an ESSAY question with question text
    of:

    "Please tell us in your own words a bit about yourself, your hobbies
    and what you hope to find here:" (without quotes).

──────────────────────────────────────────────────────────────────────────────
Sysop Module - Configuring the User Profile System Environment
──────────────────────────────────────────────────────────────────────────────

1. Add a new menu item (for SYSOP access only) in your SDL file to allow
   Sysop access to the UPS Environment Editor and Configuration module (See
   the section at the end of this document for a list of the SDL Opt
   Data line options you have at your disposal). The entry should look
   similar to this:

       Entry:
       [1] User Profile System - Configuration (SYSOP ACCESS)
       Priv=255
       KEY=1 TYPE=200 Opt Data=d:\UPS\UPS /q -s
                                           
                                   │  │      │
       Insert your own Path ───────┘  │      │
   Name of the config TPG  ───────────┘      │
 Flag for the config module (REQUIRED)───────┘


   NOTE: Pay special attention to the Opt Data line. It is important that
         you enter all symbols and characters as they are shown. Also
         remember that spaces are important. ENTER THE OPT DATA LINE
         EXACTLY AS IT IS SHOWN. Failure to do so may result in improper
         operation of UPS. The flag and questionnaire name is not case
         sensitive.

2. Compile the SDL file and start TBBS. Then select the item from the menu
   to load the User Profile System Environment Editor Module.

3. Access the User Profile System item defined above. You will see a screen
   similar to this:

 USER PROFILE SYSTEM(tm) v1.0                          Edit Environment
║ Display Number Of Times Browsed? (Y/N)          Y                    ║
║ Display All Questionnaires In Browse? (Y/N)     N                    ║
║ Display Option To List All Browsers             Y                    ║
║ Color String For Answer IDs:                    bg+/n                ║
║ Color String For System Prompts:                g+/n                 ║
║ Color String For Answer Text:                   gr+/n                ║
║ Color String For Question Text:                 w+/n                 ║
║ DOS Path For TBBS UserLog.BBS:                  c:\tbbs\             ║
║                                                                      ║
║                                                                      ║
║                                                                      ║
║                                                                      ║
  D=Delete  E=Edit  Q=Quit

──────────────────────────────────────────────────────────────────────────────
Sysop Module - Using the User Profile System Environment Editor
──────────────────────────────────────────────────────────────────────────────

When you select E for EDIT you can modify the following items:

1. Display Number Of Times Browsed - Answering YES will display to a
   caller (usually at logon) a message indicating to him the number of
   times his profile has been browsed since he last accessed this module.
   This is similar to the Oracomm method of displaying the times browsed at
   logon. NOTE: Each time the caller passes through this module the number
   of times browsed is reset to zero.

2. Display All Questionnaires In Browse - This item is used to
   differentiate between the DLX style of linking multiple questionnaires
   and the Oracomm method of keeping questionnaires separate. The DLX
   method appends all questionnaires together that a caller has answered so
   that when the questionnaire is browsed all questions with answers are
   displayed from anywhere the browse command is called. The ORACOMM
   style forces the caller to go to each area where he originally answered
   the questionnaires and perform multiple browses on the same account in
   order to get a user's complete set of questions and answers.

3. Display Option To List All Browsers - User Profile System goes even a step
   further than Oracomm in telling you how many times your profile was
   browsed since your last call. By turning this option ON (Answering YES
   to the question) your callers will also be asked: "Do You Wish To See
   The List Of The Browsers? (Y/N)". This allows the caller to actually
   see a list and subsequently browse those who have browsed his profile.

4. Color String For Answer IDs: This is the foreground and background
   color codes that you set for the letters that are assigned to the
   True/False and multiple choice answers. We call them ANSWER IDS. The
   color configuration follows standard dBase III Plus notation and is
   entered in the following format:

        foreground code/background code

        The possible color code choices are:

                N for BLACK
                B for BLUE
                G for GREEN
                BG for CYAN
                R for RED
                RB for MAGENTA
                GR for BROWN (YELLOW if + is used)
                W for WHITE
                I for INVERSE
                * for BLINKING
                + for HIGH INTENSITY (BRIGHT)

For example if you want to have the ANSWER IDS to be bright white on
blue you would enter: W+/B

NOTE: When making a color bright or blinking the + or * follows the color
      choice. Example: W+/B* will equate to blinking bright white on a
      blue background.

5. Color String For System Prompts - Enter your color choices for the
   system prompts. The system prompts include confirming a caller's
   selection and the "Press Any Key" prompt when there is more than one
   page to display.

6. Color String For Answer Text - The color selection you enter here will
   affect the Answers that are displayed to the screen.

7. Color String For Question Text - The color string for the actual text of
   the questions.

8. Delete User Key - The Delete User Key at the bottom of this screen
   allows you to selectively delete users from the User Profile System
   database. (For additional information on deleting users see the
   Off-line/nightly maintenance section). When you select "D" it will ask
   you to enter the name of a caller you wish to delete. You would enter
   the caller's LOGON ID here.

9. DOS Path For TBBS UserLog.bbs - Enter the path to your TBBS USERLOG so
   that the User Profile System Maintenance program (UPSMAINT) can locate
   it for nightly maintenance operations.

──────────────────────────────────────────────────────────────────────────────
User Module - Questionnaires
──────────────────────────────────────────────────────────────────────────────

The User Profile System program is designed to be as flexible as possible. In
Oracomm and DLX systems a caller may answer 2-5 different questionnaires.
These questionnaires are "attached" to different areas or "pubs" within
the system. For example the General Questionnaire would be attached to the
main menu while a Sports Questionnaire may be attached to a sports pub or
message area. That way if a particular caller was not interested in sports
and assuming that he would never go to the sports pub then he would never
see or be asked to fill out the Sports Questionnaire. The method of
"attaching" the questionnaires is accomplished by the same type of menu
entry. The only difference is that you pass it the name of the
questionnaire that you wish to associate with an area. One difference
worth noting is that with the User Profile System you can have an unlimited
number of questionnaires.

Using our example General Questionnaire created above you would set the
auto executing entry in the main menu as follows:

1. Add an auto executing menu item in your SDL file to allow UPS to check
   whether a caller has answered this particular questionnaire. If the
   caller has answered the questionnaire then he exits the module. If he
   has not answered the questionnaire  he will move into the questionnaire
   passed on the opt data line. (See the section at the  end of this
   document that lists all of the SDL Opt Data line options you have at
   your disposal). The entry should look similar to this:

       Entry:
       KEY=^@ TYPE=200 Opt Data=d:\UPS\UPS /q -Q General
                                                
                                    │  │      │    │
        Insert your own Path ───────┘  │      │    │
      Name of the User TPG  ───────────┘      │    │
 Flag for the browse check  (REQUIRED)────────┘    │
      Name of the Questionnaire to be used ────────┘ (REQUIRED)


   NOTE: Pay special attention to the Opt Data line. It is important
         that you enter all symbols and characters as they are shown.
         Also remember that spaces are important. ENTER THE OPT DATA
         LINE EXACTLY AS IT IS SHOWN. Failure to do so may result in
         improper operation of UPS. The flag and questionnaire name 
         is not case sensitive.

Continuing with the example above, if you had a questionnaire called
"SPORTS" and you attached it to the sports area it would be called from
the Sports Pub menu and would look similar to this:

       Entry:
       KEY=^@ TYPE=200 Opt Data=d:\UPS\UPS /q -Q SPORTS
                                                
                                    │  │      │    │
        Insert your own Path ───────┘  │      │    │
      Name of the User TPG  ───────────┘      │    │
 Flag for the browse check  (REQUIRED)────────┘    │
       Name of the Questionnaire to be used ───────┘ (REQUIRED)


2. Compile the SDL file and start TBBS.

3. Answer the General Questionnaire to see how it functions.

──────────────────────────────────────────────────────────────────────────────
User Module - Browsing a Caller
──────────────────────────────────────────────────────────────────────────────

1. Add an item to a menu in your SDL file so that callers may browse or
   view the questions and answer of other callers. (See the section at the
   end of this document that lists all of the SDL Opt Data line options
   you have at your disposal). The entry should look similar to this:

       Entry:
       <B>rowse a Profile
       KEY=B TYPE=200 Opt Data=d:\UPS\UPS /q -B general
                                              
                                    │  │     │   │
        Insert your own Path ───────┘  │     │   │
      Name of the User TPG  ───────────┘     │   │
 Flag for the browse function (REQUIRED)─────┘   │
     Name of the Questionnaire to be used ───────┘ (REQUIRED)


   NOTE: Pay special attention to the Opt Data line. It is important
         that you enter all symbols and characters as they are shown.
         Also remember that spaces are important. ENTER THE OPT DATA
         LINE EXACTLY AS IT IS SHOWN. Failure to do so may result in
         improper operation of UPS. The flag and the questionnaire 
         name are not case sensitive.

2. Compile the SDL file and start TBBS.

3. Select the menu item associated with the Browse function. At the "Enter
   User ID For Browse:" Enter a user account name. If the caller has
   answered a questionnaire then you will see the the questions and
   answers for that account. When you reach the end of the profile UPS will
   ask if you wish to view the user profile again.

──────────────────────────────────────────────────────────────────────────────
User Module - Automatic Notification System
──────────────────────────────────────────────────────────────────────────────

The Automatic Notification System alerts callers at logon that their
questionnaire has been browsed. This function closely resembles a similar
activity found on Oracomm Systems.

While we will use in our example an auto execute at logon, you may want to
place this at the top of the MAIN menu so that callers online are notified
that they have been browsed on this call.

1. Add an auto executing menu item in your SDL file to allow UPS to
   check at logon whether a caller has been "browsed" or not. (See
   the section at the end of this document that lists all of the SDL Opt
   Data line options you have at your disposal). The entry should look
   similar to this:

       Entry:
       KEY=^@ TYPE=200 Opt Data=d:\UPS\UPS /q -c  general
                                                
                                    │  │      │    │
        Insert your own Path ───────┘  │      │    │
      Name of the User TPG  ───────────┘      │    │ 
 Flag for the browse check  (REQUIRED)────────┘    │
        Name of the Questionnaire to be used───────┘ (REQUIRED)


   NOTE: Pay special attention to the Opt Data line. It is important
         that you enter all symbols and characters as they are shown.
         Also remember that spaces are important. ENTER THE OPT DATA
         LINE EXACTLY AS IT IS SHOWN. Failure to do so may result in
         improper operation of UPS. The opt data flag and questionnaire
         name are not case sensitive.

2. Compile the SDL file and start TBBS.

If your profile has been browsed since you last entered this module then
you will be notified along with the number of times you were browsed
(providing you answered YES to the "Display Number Of Times Browsed?"
prompt in the System Environment Editor).

If you choose to see who browsed your questionnaires you will be given a
list of those callers along with the date and time that they browsed you
(providing you answered YES to the "Display Option To List All Browsers"
prompt in the System Environment Editor).

In addition you can select from the menu to <R>epeat the list of those who
have browsed your account, <B>rowse an account or <Q>uit.

──────────────────────────────────────────────────────────────────────────────
User Module - Changing Answers
──────────────────────────────────────────────────────────────────────────────

There is a separate flag that you will use if you want your callers to be
able to re-answer questionnaires. You will need a separate entry for each
questionnaire that you want the caller to re-answer. An example to allow the
caller to re-answer the General Questionnaire would look similar to this:


       Entry:
       <1> Answer Your General Questionnaire Again
       KEY=^@ TYPE=200 Opt Data=d:\UPS\UPS /q -E General
                                                
                                    │  │      │    │
        Insert your own Path ───────┘  │      │    │
      Name of the User TPG  ───────────┘      │    │
 Flag for the browse check  (REQUIRED)────────┘    │
       Name of the Questionnaire to be used ───────┘ (REQUIRED)


   NOTE: Pay special attention to the Opt Data line. It is important
         that you enter all symbols and characters as they are shown.
         Also remember that spaces are important. ENTER THE OPT DATA
         LINE EXACTLY AS IT IS SHOWN. Failure to do so may result in
         improper operation of UPS. The opt data flag and questionnaire
         name is not case sensitive.

Using the Sports Questionnaire example again. The entry to re-answer the
Sports Questionnaire would look similar to this:

       Entry:
       <2> Answer The Sports Questionnaire Again
       KEY=^@ TYPE=200 Opt Data=d:\UPS\UPS /q -E SPORTS
                                                
                                    │  │      │    │
        Insert your own Path ───────┘  │      │    │
      Name of the User TPG  ───────────┘      │    │
 Flag for the browse check  (REQUIRED)────────┘    │
       Name of the Questionnaire to be used ───────┘ (REQUIRED)


2. Compile the SDL file and start TBBS.

UPS remembers your original answers when you chose to edit or re-answer a
questionnaire. It will display each question followed by the answer
choices and then the answer(s) that you originally selected. You have the
option to modify your answers or by pressing ENTER, preserve your answers
and move on to the next question.

──────────────────────────────────────────────────────────────────────────────
User Module - Interactive Match
──────────────────────────────────────────────────────────────────────────────

The Interactive Match is one of the key parts of the User Profile System.
This type of match allows the person performing the search the ability to
specifically tailor the search to meet his needs. If you don't want a
specific question considered in your match simply press enter to skip it.
To enable the Interactive Match create a menu entry similar to the
following:

       Entry:
       <M> Search User Profiles for A Match
       KEY=^@ TYPE=200 Opt Data=d:\UPS\UPS /q -I General
                                                
                                    │  │      │    │
        Insert your own Path ───────┘  │      │    │
      Name of the User TPG  ───────────┘      │    │
 Flag for the browse check  (REQUIRED)────────┘    │
       Name of the Questionnaire to be used ───────┘ (REQUIRED)


   NOTE: Pay special attention to the Opt Data line. It is important
         that you enter all symbols and characters as they are shown.
         Also remember that spaces are important. ENTER THE OPT DATA
         LINE EXACTLY AS IT IS SHOWN. Failure to do so may result in
         improper operation of UPS. The opt data flag and questionnaire
         name is not case sensitive.

   NOTE: You need to specify a questionnaire for the Interactive Match
         to use.

──────────────────────────────────────────────────────────────────────────────
User Module - Performing An Interactive Match
──────────────────────────────────────────────────────────────────────────────

We will continue our example using the "general questionnaire". When you
select the Interactive Match for the general questionnaire you will see the
first question:

   NOTE: For the purposes of this demo create another profile of a "dummy"
         caller and answer the questions using the dummy account. Remember
         how you answer the questions so that you can then perform an
         interactive match to find this dummy account.

   NOTE: The User Profile System searches have been designed so that you will
         never match yourself.

What is your sex?

 A. Male
 B. Female

Enter ONE Answer And Press ENTER:

After entering a selection you will be asked:

Satisfied With Your Answer? (Y/N):

Press return or Y to continue on or N to re-select your search criteria for
this question.

Continue selecting the same answers that you picked when you first
answered the questionnaire. When you are finished you will see a screen
similar to the following:

The following profiles match your request:


SYSOP          Los Angeles

End of Listing - <R>epeat  <B>rowse <Q>uit

You can browse a profile listed (or any profile for that matter), repeat
the list of profiles that match your request or quit the Interactive Match
Module.

──────────────────────────────────────────────────────────────────────────────
WARNING!
──────────────────────────────────────────────────────────────────────────────

DO NOT ATTEMPT TO IMPLEMENT THE PERCENTAGE MATCH FUNCTION BELOW UNTIL YOU
FULLY UNDERSTAND THE ITEMS DESCRIBED ABOVE. THE SECTION YOU ARE ABOUT TO
READ IS THE MOST COMPLEX PORTION OF THE USER PROFILE SYSTEM. WE SUGGEST
THAT YOU DO NOT IMPLEMENT THIS ONLINE UNTIL YOU CLEARLY UNDERSTAND HOW IT
WORKS.

Please Note that this feature relies upon the Sysop to determine which
profile characteristics match within the user profile.  This function will
produce a list of callers that the Sysop has decided match the logon user's
profile.  It is, after all, a case of the Sysop telling the users who he
thinks they should be interested in reviewing. Given the level of effort
needed to provide the percentage match and the high probability of matches
that are not what the user desires, it is the author's suggestion that the
Sysop think very seriously about steering callers to the Interactive Match
Function and away from the Percentage Match.

──────────────────────────────────────────────────────────────────────────────
Understanding The Percentage Match
──────────────────────────────────────────────────────────────────────────────

The Percentage Match function allows a caller to enter a percentage in
order to find those user profiles that come close to or match the caller's
own profile. In the Percentage Match the caller can enter nothing else but
a percentage. For example: Entering 75 for the percent match should give
you a list of those callers whose questionnaire answers match your profile
at least 75 percent. How does the User Profile System system know which
questions to match on?

That answer is totally up to you, the Sysop. The key to making the
Percentage Match successful and meaningful lies in your selection
of questionnaire questions and answers for the default match.

Part of the questionnaire generation procedure is the creation of the
questions.  Two fields directly affect the default search process.  The
"Include Question In Default Search" item indicates whether or not the
question will be used by the default search function to find a matching
user profile.  If no questions in the questionnaire have this item marked
YES, there can be NO default search. There must be a question or questions
for User Profile System to consider in order to come up with a match. If all
questions in the questionnaire have this item marked NO, there can
essentially be no percentage match performed.

The "Answer MUST Match In Default Search" entry indicates whether or not
the user's profile and all perspective profiles must match on answers for
that question, regardless of any other considerations. In other words,
this item determines whether user a's and user b's answers to this
question MUST ALL MATCH (YES) or MAY MATCH (NO).

After entering the text of the question, you will enter the answers
for the question.  There must be at least two answers for a question. If
the question is True/False, there can be only two answers.  If the
question is Multiple Choice, there can be up to twenty-six answers.

After you generate the questionnaire and the user has entered his
profile, he can execute a Percentage Search.  He enters a percentage
value, and the User Profile System returns a list of user names. The
percentage value entered indicates the caller's desire for accuracy.

If there are ten default search answers in a questionnaire, and the user
enters "50" percent, the user is saying that any given profile must match
half of his profile default question answers.  If the user enters "100",
all of the default question answers must match.  If you did not set
the mandatory flag for any of the default questions, the match can occur
using any combination of the default questions.  In the 50 percent
example, a match on any five of the ten default questions will work. Which
five does not matter.

In order to understand how the percentage match function works we need to
go back into the SYSOP Module and Edit the General Questionnaire.

──────────────────────────────────────────────────────────────────────────────
Sysop Module - Configuring a Questionnaire for Percentage Matches
──────────────────────────────────────────────────────────────────────────────

If you follow this example all the way through you should have a basic
understanding of how the Percentage Match function works. It may take some
time to fully grasp this and therefore we highly recommend that you NOT
place the Percentage Match Function on your system until you fully
understand the other components of the User Profile System system. Improper
implementation of the percentage match can mean reduced system throughput
and/or long search times for your callers online.

1. Select the Sysop Module to display the Questionnaire List

2. Select EDIT and enter the name "general" (without quotes). You will be
   asked if you want to take the questionnaire offline. Answer YES.

3. From the Edit Questionnaire Screen select ZOOM to go to the ADD/EDIT
   QUESTIONS level.

4. Since Question 1 is an "Information Only" question there is nothing to
   edit. Press "N" to go to the next question.

5. Select EDIT to edit question number 2. We are not going to change the
   type of question so leave the question type set at "M" for Multiple
   Choice. We are also not going to change the Maximum Number of User
   Answers Allowed so press ENTER again.

6. Now you are at the "Include Question In Default Search". This item
   deals exclusively with the Percentage Match function. A question by
   default is not included in a Percentage Match. You must enter a "Y"
   here in order to include it.

Why would you not want a question to be included in a Percentage Match?

Remember that as the number of users increase and the number of profiles
are added it will take some time for the User Profile System to perform the
search routines necessary to find the Percentage Matches. The more
questions you include the longer the searches will take and the more power
these searches will draw from the system.

Typically using our "general" questionnaire we may only want to match on
sex, height, hair  and eye color. (We don't care if they read  and
understand the rules as far as matching goes).

For our example we are going to include question number 2 in the
Percentage Match so answer "Y".

7. The next item also deals with the Percentage Match. "Answer MUST Match
   In Default Search" determines whether a default question must match
   REGARDLESS of the percent request that the caller has entered. In other
   words this acts as an override type of function. If any of the
   mandatory matches don't match then that profile is not considered. If
   exact is set to NO then it will look at all questions that you have
   marked to be included in the default search before it can decide if
   anyone meets a match. The fastest method is to allow mandatory matches
   to only have one answer. IF mandatory - then everyone included in your
   search must match.

   So for this question "What Is Your Sex?" we have said that the answer
   to this question MUST match (Answer "Y" to this question).

8. Now ZOOM down to the answer level. You will notice that below answer A
   there is a table that we call the "Answer Matrix" (see figure below):

  USER PROFILE SYSTEM(tm) v1.0                           Add\Edit Answers
║ Questionnaire Code   General                                            ║
║ Questionnaire Title  General User Questionnaire                         ║
╟─────────────────────────────────────────────────────────────────────────╢
║ Question 1                                                              ║
║  <M>ulti <T>rue/False <E>ssay <I>nfo:    M                              ║
║  Maximum # Of User Answers Allowed:      1                              ║
║  Include Question In Default Search:     Y                              ║
║  Answer MUST Match In Default Search:    Y                              ║
║ Question Text                                                           ║
║ What is your sex?                                                       ║
║                                                                         ║
║─────────────────────────────────────────────────────────────────────────║
║Answer A                                                                 ║
║Male                                                                     ║
║                                                                         ║
║ Match A: N  Match B: N  Match C: N  Match D: N  Match E: N  Match F: N  ║
║ Match G: N  Match H: N  Match I: N  Match J: N  Match K: N  Match L: N  ║
║ Match M: N  Match N: N  Match O: N  Match P: N  Match Q: N  Match R: N  ║
║ Match S: N  Match T: N  Match U: N  Match V: N  Match W: N  Match X: N  ║
║ Match Y: N  Match Z: N                                                  ║
A=Add │ E=Edit │ D=Del │ I=Ins │ N=Next │ P=Prev │ Z=Zoom │ Q=Quit

For questions to be included in a default search, each answer option
includes a matrix or list of twenty-six items. There are twenty-six
because up to twenty-six answers are allowed per question.  They are
titled "Match A", "Match B", and so on through "Match Z".  These items
indicate which other answers for the question will match the caller's
answers. We know this might be a bit confusing but stick with us.

9. Select EDIT to edit Answer A. Press enter to get into the matrix. We
   know the following:

        1. The question is "What is Your Sex?"
        2. Answer A is MALE

For this question do you want Males to match Males? If you do not you would
place a N in Match A:; otherwise place a Y.

Do you want Match B: (which is female) to match A (males)? If you do you
would place a Y in Match B; otherwise place an N.

Example: Using the above question "What is Your Sex?" we know there are
two possible answers - A: Male and B: Female.

We are now going to step through each of the possible outcomes based on
wether you put "Y" or "N" next to Match A: and Match B: FOR ANSWER A ONLY.

For the sake of this example we are going to assume that the caller is a
male and is performing a Percentage Search using only the above question:

Match A: Y and Match B: N - He would be shown all males in the UPS.
Match A: N and Match B: Y - He would be shown all females in the UPS.
Match A: Y and Match B: Y - He would be shown EVERYONE in the UPS.
Match A: N and Match B: N - He would be shown NO ONE in the UPS.

You don't have to worry about matrix items C through Z because there
are no answers C through Z for this question.

When you have made your selections for Match A: and Match B: you can press
escape and answer YES that you are satisfied with your answers.

10. Select NEXT to move to Answer B then select EDIT to edit Answer B.
    Press enter to edit the matrix. We know the following:

        1. The question is "What is Your Sex?"
        2. Answer B is FEMALE

For this question do you want Males to match Females? If you do you would
place a Y in Match A:.

Do you want Match B: (which is female) to match answer B (females)? If you
do you would place a Y in Match B.

Example: Using the above question "What is Your Sex?" we know there are
two possible answers - A: Male and B: Female.

We are now going to step through each of the possible outcomes based on
wether you put "Y" or "N" next to Match A: and Match B: FOR ANSWER B ONLY.

For the sake of this example we are going to assume that the caller is a
male and is performing a Percentage Search using only the above question:

Match A: Y and Match B: N - He would be shown all females in the UPS.
Match A: N and Match B: Y - He would be shown all males in the UPS.
Match A: Y and Match B: Y - He would be shown EVERYONE in the UPS.
Match A: N and Match B: N - He would be shown NO ONE in the UPS.

You don't have to worry about matrix items C through Z because there
are no answers C through Z for this question.

When you have made your selections for Match A: and Match B: you can press
escape and answer YES that you are satisfied with your answers.

This matrix is the method that you use to build the format for profile
matches in the default search.  Please note that the user does NOT
indicate which of the answer options produce a match.

When addressing the match matrix, it may be helpful to remember the
following: The matrix is interested in how all of the answers offered for
the given question impacts the current answer only.  In the example above,
when you are editing the MALE answer, the matrix relates ONLY to the male
answer.  The question the matrix answers is; what answers for this
question will match the MALE answer?  MATCH C - Z are ignored as there are
no C - Z answers.

──────────────────────────────────────────────────────────────────────────────
Optimizing The Percentage Match
──────────────────────────────────────────────────────────────────────────────

The effect of this percentage value (in terms of the length of the search
time the user is subjected to AND impact on your system) can be minimized
by the "Answer MUST Match In Default Search" flag.  If the sysop sets this
item to "Y" for three of the ten default questions, any profile selected
during the search must match those three question answers, regardless of
the percentage value entered by the user.  If the user entered "25", the
match would still require a 30 percent match rate on those three mandatory
questions. In the 50 percent example, a match would occur for profiles
with those three mandatory questions and any other two default questions
matching.

Suppose your questionnaire contained ten (10) default questions.  Examine
the following scenarios:

──────────────────────────────────────────────────────────────────────────────
Scenario 1 - NO FORCED ANSWERS
──────────────────────────────────────────────────────────────────────────────

You have answered NO to the "Answer MUST Match In Default Search" question
for all 10 questions. Each answer allows only ONE user response.  A user
requests a 30% match.  The system will look for a match, according to the 
answer matrix, with ANY 3 questions.  There is one check per question
because  there is one user response per question.  If they are the last
three questions, the system had to check the first 7 questions in vain.
The system stops testing a profile only after the required percentage has
be satisfied.  If every profile needed to match the last question, you can
see that the efficiency of the search is as low as possible.

──────────────────────────────────────────────────────────────────────────────
Scenario 2 - NO FORCED ANSWERS WITH MULTIPLE RESPONSES
──────────────────────────────────────────────────────────────────────────────

This is similar to Scenario 1 except that each question can have three (3)
user responses.  For each question in the profile, the system must check
for a match three times.  The worst possible combination, from a
processing time point of view, is if the matching answer for each question
was the last one the user selected.  If the last three questions match,
but only on the last user response, the system would make 27 fruitless
checks to come up with each 30% match.  Remember, the system keeps
checking a profile until it meets the 30% requirement or until every
response for every question has been checked.

──────────────────────────────────────────────────────────────────────────────
Scenario 3 - FORCED ANSWERS
──────────────────────────────────────────────────────────────────────────────

We use the same ten questions and the same three user options. In this
example two of the questions have been flagged as forced questions (You set
the Answer MUST Match Default Search to "Y"). These two questions must
match regardless of the percentage entered.  The system checks forced
questions first thus speeding the process substantially.  Any profile that
does not match the forced questions is rejected WITHOUT ANY FURTHER
CHECKING.  Even with the multiple responses, profiles are rejected after a
maximum of only six (6) checks (compare this to the thirty (30) tests of
Scenario 2).  If there is only one user response allowed per question, the
system needs a maximum of two (2) checks to eliminate a profile (compare
this to the ten (10) tests of scenario 1).

The default search feature is a loaded gun pointing at the sysop's foot.
The questionnaire can be structured in such a manner as to take an
unacceptably long time to return matching profiles.  The following must be
considered:

        1.  The more default questions, the longer the search.
        2.  The more answers per question allowed, the longer the search.
        3.  The fewer mandatory questions, the longer the search.

If there are no mandatory questions, the system must look at every default
question before accepting or eliminating a user profile from the match.
If the default questions allow multiple answers, every answer option must
be tested for the question before that question is accepted or eliminated
from the match.

The worst questionnaire structure, from the default search function time
point of view, includes a lot of default questions, each allowing the user
to enter all of the twenty-six answer options.

The best questionnaire structure includes a handful of default questions,
each a mandatory question allowing only one answer option.

It is up to you to find the proper balance for your system. We advise that
until you understand the delicate balances and nuances to using the
Percentage Match that you only use the Percentage Match on one
questionnaire on your system.

──────────────────────────────────────────────────────────────────────────────
Offline/Nightly Maintenance Program
──────────────────────────────────────────────────────────────────────────────

Included with the User Profile System is an off-line nightly maintenance
program called UPSMAINT.EXE. The maintenance program performs the
following:

        1. Removes caller profiles deleted by the sysop.
        2. Removes any questionnaires, questions or answers deleted by the
           sysop.
        3. Removes a caller from the User Profile System database who is
           not found in the TBBS Userlog.
        4. Cleans the User Profile System databases.
        5. Generates new indexes.

We recommend that you run this program nightly. You may also run this
program if you find any inconsistencies with your online questionnaires or
matching functions.

──────────────────────────────────────────────────────────────────────────────
Calling User Profile System From Within UltraChat
──────────────────────────────────────────────────────────────────────────────

There is a special flag that will allow you to call the User Profile
System performing any of the functions listed above then return to
UltraChat. The flag to use is "U". When UPS detects the U Opt Data flag it
knows to perform a DOTBBS command instead of just exiting after the caller
has finished using UPS. The Opt Data line for calling UPS from UltraChat
follows the format:

    -u<UPS flag><type #> # optdata <opt data> & <questionnaire code>

NOTE: You MUST follow the format above EXACTLY or the special UltraChat
      option will not work correctly (this includes all spaces and special
      characters). The U must always precede any other UPS Opt Data flag.

An example of calling UPS from UltraChat would be:

    Type=200 Opt Data=c:\UPS\UPS/q -ub 5 # main & general

This would execute the browse function of UPS using the general
questionnaire (defined by the & general). When the caller was finished, UPS
would then perform a DOTBBS type 5 (goto) to the main menu (as defined by
the # main).
    
NOTE: The original Opt Data format is still supported and should be used
in any situation where you are NOT calling User Profile System from
UltraChat.

──────────────────────────────────────────────────────────────────────────────
Useful Tips
──────────────────────────────────────────────────────────────────────────────

QUICK TIP: Whenever you want to skip the remaining items on a screen hit
           the ESCAPE key. It will ask for confirmation that you are
           satisfied with your text, save what you have already entered and
           exit edit mode.  You can also use the ESCAPE key to back up a
           level instead of using Q to Quit.

QUICK TIP: If you notice any inconsistencies with the UPS program
           or you receive error messages you can go to the UPS
           program directory and delete the index files (*.ndx). UPS will
           recreate the indexes the next time one of its modules is
           accessed.

──────────────────────────────────────────────────────────────────────────────
Opt Data Flags
──────────────────────────────────────────────────────────────────────────────

Below is a list of the opt data flags that you can use to call the various
components of the User Profile System.  Here is an example of an SDL
entry:

       Entry:
       <2> Answer The Sports Questionnaire Again
       KEY=^@ TYPE=200 Opt Data=d:\UPS\UPS /q -E SPORTS
                                                
                                    │  │      │    │
        Insert your own Path ───────┘  │      │    │
      Name of the User TPG  ───────────┘      │    │
 Flag for the browse check  (REQUIRED)────────┘    │
       Name of the Questionnaire to be used ───────┘ (REQUIRED)


The format is the same as the example above. Only the flag would change to
indicate a different function. Possible flags are:

        m = questionnaire creation
        q = fill out questionnaire *
        p = percentage match *
        i = interactive match *
        e = edit questionnaire answers *
        b = browse profile *
        c = check if anyone browsed your profile *
        s = sysop environment edit - colors & flags
        u = indicates UPS is being called from within UltraChat
            (See "Calling User Profile System From Within UltraChat" below)

        * Indicates a Questionnaire Code is needed

Also included on the distribution diskette is a sample sdl file (ups.sdl)
showing how each is called.

──────────────────────────────────────────────────────────────────────────────